package br.com.foxinline.manager.pesquisar.ep;


import br.com.foxinline.modelo.ep.Qualidade;
import br.com.foxinline.servico.ep.QualidadeServico;
import br.com.foxinline.utilitario.Mensagem;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import javax.annotation.PostConstruct;
import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import javax.faces.context.FacesContext;

/**
 *
 * @author cadomeireles
 */
@ViewScoped
@ManagedBean
public class ManagerPesquisarQualidade implements Serializable {

    @EJB
    QualidadeServico qualidadeServico;
    
    private Qualidade qualidade;    
    private Qualidade qualidadeVisualizar;    
    private Qualidade qualidadeDeletar;
    private List<Qualidade> qualidades;
    
    private String visualizarId;
    
    @PostConstruct
    public void init() {
        instanciar();
        delegar();
    }
    
    private void instanciar() {
        this.qualidade = new Qualidade();
        this.qualidadeVisualizar = new Qualidade();
        this.qualidadeDeletar = new Qualidade();
        this.qualidades = new ArrayList<Qualidade>();
    }

    private void delegar() {
        Map<String, String> parametros = FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap();
        this.visualizarId = parametros.get("qualidadeId");
        
        if (visualizarId != null) {
            this.qualidadeVisualizar = qualidadeServico.pesquisar(Long.parseLong(visualizarId));
        }
    }

    public void pesquisar() {
        this.qualidades = qualidadeServico.pesquisar(this.qualidade);
    }    
    
    public void limpar() {
        instanciar();
    }
    
    public void deletar() {
        qualidadeServico.deletar(this.qualidadeDeletar);
        pesquisar();
        
        Mensagem.messagemInfo("Qualidade excluída com sucesso!");
    }

    public Qualidade getQualidade() {
        return qualidade;
    }

    public void setQualidade(Qualidade qualidade) {
        this.qualidade = qualidade;
    }

    public Qualidade getQualidadeDeletar() {
        return qualidadeDeletar;
    }

    public void setQualidadeDeletar(Qualidade qualidadeDeletar) {
        this.qualidadeDeletar = qualidadeDeletar;
    }

    public Qualidade getQualidadeVisualizar() {
        return qualidadeVisualizar;
    }

    public void setQualidadeVisualizar(Qualidade qualidadeVisualizar) {
        this.qualidadeVisualizar = qualidadeVisualizar;
    }

    public List<Qualidade> getQualidades() {
        return qualidades;
    }

    public void setQualidades(List<Qualidade> qualidades) {
        this.qualidades = qualidades;
    }

}
